/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package jhelper.blls;

import java.io.File;
import java.io.FileWriter;
import java.util.Hashtable;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import jhelper.models.AddressBookBean;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;

/**
 *
 * @author Administrator
 */
public class AddressBook {
    
    public boolean newCard(AddressBookBean newcard){
        //把newcard通讯录对象存起来
        
        
        Document doc;
        Element addressbook,card;
        Element name,mobile,office,home,qq,email,other;
        boolean flag=false;
        
        try{
            
           DocumentBuilderFactory f = DocumentBuilderFactory.newInstance();
           DocumentBuilder db = f.newDocumentBuilder();
           
           
           File file = new File("addressbook");
           if(!file.exists()){
               file.mkdir();
           }
           
           file = new File("addressbook/addressbook.xml");
           if(!file.exists()){
               flag = true;
               file.createNewFile();
               doc = db.newDocument();
               addressbook = doc.createElement("addressbook");
               
           }else{
               doc = db.parse(file);
               addressbook = (Element) doc.getElementsByTagName("addressbook").item(0);
               
        }
        //构建card元素，它是name等元素的父元素
           card = doc.createElement("card");
           name = doc.createElement("name");
           mobile = doc.createElement("mobile");
           office = doc.createElement("office");
           home = doc.createElement("home");
           qq = doc.createElement("qq");
           email = doc.createElement("email");
           other = doc.createElement("other");
           
           name.appendChild(doc.createTextNode(newcard.getName()));
           mobile.appendChild(doc.createTextNode(newcard.getMobile()));
           office.appendChild(doc.createTextNode(newcard.getOffice()));
           home.appendChild(doc.createTextNode(newcard.getHome()));
           qq.appendChild(doc.createTextNode(newcard.getQq()));
           email.appendChild(doc.createTextNode(newcard.getEmail()));
           other.appendChild(doc.createTextNode(newcard.getOther()));
           
           
           card.appendChild(name);
           card.appendChild(mobile);
           card.appendChild(office);
           card.appendChild(home);
           card.appendChild(qq);
           card.appendChild(email);
           card.appendChild(other);
           
           addressbook.appendChild(card);
           if(flag){
               doc.appendChild(addressbook);
               
           }
           //各元素之间的关系确定以后，需要dom转换成xml
           TransformerFactory ff = TransformerFactory.newInstance();
           Transformer t = ff.newTransformer();
           FileWriter fout = new FileWriter(file);
           t.transform(new DOMSource(doc),new StreamResult(fout));
           
           
        }catch (Exception e) {
        
        
        return true;
    }
    }

    
    
    public boolean modifyCard(AddressBookBean oldcard) throws ParserConfigurationException{
        
        Document doc;
        
        NodeList cards;
        
        Element addressbook,card,newcard,oldname;
        
        Element name,mobile,office,home,qq,email,other;
        
        try{
            DocumentBuilderFactory f = DocumentBuilderFactory.newInstance();
            DocumentBuilder db = f.newDocumentBuilder();
            
            
            File file = new File("addressbook/addressbook.xml");
            if(!file.exists()){
                return false;
            }
            
            doc = db.newDocument();
            addressbook = (Element) doc.getElementsByTagName("addressbook");
            
            
            cards = doc.getElementsByTagName("card");
            
            
            for(int i = 0; i< cards.getLength();i++){
                card = (Element) cards.item(i);
                oldname = (Element) card.getElementsByTagName("name").item(0);
                if({oldname.getFirstChild().getNodeValue().equals(oldcard.getName())){
                    
                }
            }
        }
                
        
    return true;    
    }

    public boolean delCard(String name){
        
        return true;
    }
    
    
    public Hashtable getAllCards(){
        
        return null;
    }
}
